package com.hao.dao;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;

import com.hao.pojo.Base;

@Repository
public class CommonDao<T extends Base> extends AbstractBaseDao<T> {
    @Autowired
    private JdbcTemplate jdbcTemplate;

    /**
     * 直接使用sql语句, 返回Map对象
     *
     * @param sql
     * @param args
     * @return
     */
    public Map<String, Object> queryForMap(String sql, Object... args) {
        try {
            return jdbcTemplate.queryForMap(sql, args);
        } catch (Exception e) {
            return null;
        }
    }

    /**
     * 直接使用sql语句, 返回T对象
     *
     * @param sql
     * @param clazz
     * @param args
     * @return
     */
    public T queryForObject(String sql, Class<T> clazz, Object... args) {
        return jdbcTemplate.queryForObject(sql, clazz, args);
    }

    /**
     * 直接使用sql语句, 适用update, insert, delete
     *
     * @param sql
     * @param args
     */
    public void update(String sql, Object... args) {
        jdbcTemplate.update(sql, args);
    }

}